package com.etl.service;

import com.etl.entity.EtlTaskBatch;

/**
 * @author ：poplar
 * @date ：Created in 2020/4/26 3:03 下午
 * @description：自动化抽取各步骤接口
 * @modified By：
 * @version: 1.0$
 */
public interface IEtlBatchSchedulerService {


    /**
     * 根据在批次表中配置的定时抽取类型，生成任务表
     */
    void creatTask();

    /**
     * 获取一个未执行任务
     * @return
     */
    EtlTaskBatch getTask();

    /**
     * 删除一个任务
     * @param batchTask
     * @return
     */
    int deleteTask(EtlTaskBatch batchTask);


    /**
     * 加锁 - 批次任务锁 -- 定时任务
     * @param lockValue
     * @return
     */
    boolean lockBatchTask(String lockValue);


    /**
     * 释放批次任务锁  -- 定时任务
     * @param lockValue
     */
    void unlockBatchTask(String lockValue);

}
